﻿#pragma once

#include "acis/dcl_cstr.h"
#include "acis/acis.hxx"
#include "acis/api.hxx"

#include "acis/boolapi.hxx"

/**
 * @brief  简述接口   
 * @details     详细说明接口
 * @param[in]	x x 方向的尺寸
 * @param[in]	y y 方向的尺寸
 * @param[in]	z z 方向的尺寸
 * @param[out]	body 用于返回生成的body
 * @return		函数执行结果
 */
DECL_CSTR outcome answer_api_make_cuboid(double x, double y, double z, BODY*& body);

/**
 * @brief 布尔操作
 * @param tool 工具体
 * @param blank 毛坯体
 * @param op 操作类型
 * @param ndbool_keep 保留类型
 * @param result_body 输出结果体
 * @param ao acis选项
 * @return api调用结果
 */
DECL_BOOL outcome answer_api_boolean(BODY* tool, BODY* blank, BOOL_TYPE op,
									NDBOOL_KEEP ndbool_keep = NDBOOL_KEEP_NEITHER,
									BODY*& result_body = *(BODY**)NULL_REF,
									AcisOptions* ao = nullptr
);

// 批量化测试注册函数
DECL_BOOL void RegisterTotalBooleanBatchTest();